home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 May: Tool Chest / Developer CD Series May 1996 (Tool Chest) (Apple Computer) (1996).iso / Tool Chest / Interfaces & Libraries / Interfaces / AIncludes / DatabaseAccess.a < prev    next >
Encoding:
Text File  |  1993-12-02  |  6.4 KB  |  306 lines  |  [TEXT/MPS ]

  1. ;    File:        DatabaseAccess.a
  2. ;
  3. ;    Copyright:    © 1983-1993 by Apple Computer, Inc.
  4. ;                All rights reserved.
  5. ;
  6. ;    Version:    System 7.1• for ETO #13
  7. ;    Created:    Tuesday, March 30, 1993 18:00
  8. ;    Modified:    Wed, Dec 1, 1993 20:27:35
  9. ;
  10. ;___________________________________________________________________________
  11.  
  12.     IF &TYPE('__INCLUDINGDATABASEACCESS__') = 'UNDEFINED' THEN
  13. __INCLUDINGDATABASEACCESS__    SET    1
  14.  
  15.     IF &TYPE('__INCLUDINGTRAPS__') = 'UNDEFINED' THEN
  16.     INCLUDE 'Traps.a'
  17.     ENDIF
  18.  
  19. ; error and status codes
  20.  
  21. rcDBNull          EQU         -800
  22. rcDBValue         EQU         -801
  23. rcDBError         EQU         -802
  24. rcDBBadType       EQU         -803
  25. rcDBBreak         EQU         -804
  26. rcDBExec          EQU         -805
  27. rcDBBadSessID     EQU         -806
  28. rcDBBadSessNum    EQU         -807
  29.  
  30. rcDBBadDDEV       EQU         -808
  31.  
  32. rcDBAsyncNotSupp  EQU         -809
  33. rcDBBadAsyncPB    EQU         -810
  34.  
  35. rcDBNoHandler     EQU         -811
  36.  
  37. rcDBWrongVersion  EQU         -812
  38. rcDBPackNotInited EQU         -813
  39.  
  40. ; messages for status functions for DBStartQuery
  41.  
  42. kDBUpdateWind     EQU         0
  43. kDBAboutToInit    EQU         1
  44. kDBInitComplete   EQU         2
  45. kDBSendComplete   EQU         3
  46. kDBExecComplete   EQU         4
  47. kDBStartQueryComplete EQU    5
  48.  
  49. ; messages for status functions for DBGetQueryResults
  50.  
  51. kDBGetItemComplete EQU        6
  52. kDBGetQueryResultsComplete EQU    7
  53.  
  54. ; DBType codes
  55.  
  56. typeNone          EQU         'none'
  57.  IF &TYPE('__INCLUDINGAPPLEEVENTS__') = 'UNDEFINED' THEN
  58.  ; These are defined in AppleEvents.a also, so there's no need
  59.  ; to redefine them here (thus preventing an assembler warning)
  60. typeBoolean       EQU         'bool'
  61. typeSMInt         EQU         'shor'
  62. typeInteger       EQU         'long'
  63. typeSMFloat       EQU         'sing'
  64. typeFloat         EQU         'doub'
  65. typeChar          EQU         'TEXT'
  66.  ENDIF
  67.  
  68. typeDate          EQU         'date'
  69. typeTime          EQU         'time'
  70. typeTimeStamp     EQU         'tims'
  71. typeDecimal       EQU         'deci'
  72. typeMoney         EQU         'mone'
  73. typeVChar         EQU         'vcha'
  74. typeVBin          EQU         'vbin'
  75. typeLChar         EQU         'lcha'
  76. typeLBin          EQU         'lbin'
  77. typeDiscard       EQU         'disc'
  78.  
  79. ; "dummy" types for DBResultsToText
  80.  
  81. typeUnknown       EQU         'unkn'
  82. typeColBreak      EQU         'colb'
  83. typeRowBreak      EQU         'rowb'
  84.  
  85. ; pass this in to DBGetItem for any data type
  86.  
  87. typeAnyType       EQU         0
  88.  
  89. ; infinite timeout value for DBGetItem
  90.  
  91. kDBWaitForever    EQU         -1
  92.  
  93. ; flags for DBGetItem
  94.  
  95. kDBLastColFlag    EQU         1
  96. kDBNullFlag        EQU         4
  97.  
  98. ; structure for asynchronous parameter block
  99.  
  100. DBAsyncParamBlockRec RECORD   0
  101. completionProc    DS.L        1                         ; pointer to completion routine
  102. result            DS.W        1                         ; result of call
  103. userRef           DS.L        1                         ; for application's use
  104. ddevRef           DS.L        1                         ; for ddev's use
  105. reserved          DS.L        1                         ; for internal use
  106. DBAsyncParmBlkSize EQU        *
  107.                   ENDR
  108.  
  109. ; structure for resource list in QueryRecord
  110.  
  111. ResListElem       RECORD      0
  112. theType           DS.L        1
  113. id                DS.W        1
  114. ResListElemSize   EQU         *
  115.                   ENDR
  116.  
  117. QueryRecord       RECORD      0
  118. version           DS.W        1                         ; version
  119. id                DS.W        1                         ; id of 'qrsc' this came from
  120. queryProc         DS.L        1                         ; handle to query def proc
  121. ddevName          DS.B        64                        ; ddev name
  122. host              DS.B        256                       ; host
  123. user              DS.B        256                       ; user
  124. password          DS.B        256                       ; password
  125. connStr           DS.B        256                       ; other connection info
  126. currQuery         DS.W        1                         ; current query
  127. numQueries        DS.W        1                         ; number of queries in queryList
  128. queryList         DS.L        1                         ; handle to list of queries
  129. numRes            DS.W        1                         ; number of resources in resList
  130. resList           DS.L        1                         ; handle to list of other resources
  131. dataHandle        DS.L        1                         ; data used by query def proc
  132. refCon            DS.L        1                         ; query's reference value
  133. QueryRecordSize   EQU         *
  134.                   ENDR
  135.  
  136. DBColInfoRecord RECORD      0
  137. len                   DS.W        1
  138. places           DS.W        1
  139. flags           DS.W        1
  140. DBColInfoRecordSize EQU     *
  141.                   ENDR
  142.  
  143. ResultsRecord     RECORD      0
  144. numRows           DS.W        1                         ; number of rows in result
  145. numCols           DS.W        1                         ; number of columns per row
  146. colTypes          DS.L        1                         ; data type array
  147. colData           DS.L        1                         ; actual results
  148. colInfo           DS.L        1                         ; DBColInfoRecord array
  149. ResultsRecordSize EQU         *
  150.                   ENDR
  151.  
  152. ;
  153. ; Routine Selectors
  154. ;
  155.  
  156. InitDBPack        EQU         $0100
  157. DBInit            EQU         $0E02
  158. DBEnd             EQU         $0403
  159. DBGetConnInfo     EQU         $1704
  160. DBGetSessionNum   EQU         $0605
  161. DBSend            EQU         $0706
  162. DBSendItem        EQU         $0B07
  163. DBExec            EQU         $0408
  164. DBState           EQU         $0409
  165. DBGetErr          EQU         $0E0A
  166. DBBreak           EQU         $050B
  167. DBGetItem         EQU         $100C
  168. DBUnGetItem       EQU         $040D
  169. DBKill            EQU         $020E
  170. DBGetNewQuery     EQU         $030F
  171. DBDisposeQuery    EQU         $0210
  172. DBStartQuery      EQU         $0811
  173. DBGetQueryResults EQU         $0A12
  174. DBResultsToText   EQU         $0413
  175. DBInstallResultHandler EQU   $0514
  176. DBRemoveResultHandler EQU    $0215
  177. DBGetResultHandler EQU       $0516
  178.  
  179. ;
  180. ; For package invocation
  181. ; First arg is routine selector, second is the trap
  182. ; Slightly modified from PackMacs.a to pass selector in D0,
  183. ; and always call Pack13.
  184. ;
  185.  
  186.                   MACRO
  187.                   _Pack13Call
  188.                   MOVE.W      &SYSLIST[1],D0
  189.                   _Pack13
  190.                   ENDM
  191.  
  192. ;
  193. ; Database Access Manager routines
  194. ;
  195.                   MACRO
  196.                   _InitDBPack
  197.                   MOVE.W      #$0004, -(A7)             ; push version number
  198.                   _Pack13Call #InitDBPack
  199.                   ENDM
  200.  
  201.                   MACRO
  202.                   _DBInit
  203.                   _Pack13Call #DBInit
  204.                   ENDM
  205.  
  206.                   MACRO
  207.                   _DBEnd
  208.                   _Pack13Call #DBEnd
  209.                   ENDM
  210.  
  211.                   MACRO
  212.                   _DBGetConnInfo
  213.                   _Pack13Call #DBGetConnInfo
  214.                   ENDM
  215.  
  216.                   MACRO
  217.                   _DBGetSessionNum
  218.                   _Pack13Call #DBGetSessionNum
  219.                   ENDM
  220.  
  221.                   MACRO
  222.                   _DBSend
  223.                   _Pack13Call #DBSend
  224.                   ENDM
  225.  
  226.                   MACRO
  227.                   _DBSendItem
  228.                   _Pack13Call #DBSendItem
  229.                   ENDM
  230.  
  231.                   MACRO
  232.                   _DBExec
  233.                   _Pack13Call #DBExec
  234.                   ENDM
  235.  
  236.                   MACRO
  237.                   _DBState
  238.                   _Pack13Call #DBState
  239.                   ENDM
  240.  
  241.                   MACRO
  242.                   _DBGetErr
  243.                   _Pack13Call #DBGetErr
  244.                   ENDM
  245.  
  246.                   MACRO
  247.                   _DBBreak
  248.                   _Pack13Call #DBBreak
  249.                   ENDM
  250.  
  251.                   MACRO
  252.                   _DBGetItem
  253.                   _Pack13Call #DBGetItem
  254.                   ENDM
  255.  
  256.                   MACRO
  257.                   _DBUnGetItem
  258.                   _Pack13Call #DBUnGetItem
  259.                   ENDM
  260.  
  261.                   MACRO
  262.                   _DBKill
  263.                   _Pack13Call #DBKill
  264.                   ENDM
  265.  
  266.                   MACRO
  267.                   _DBGetNewQuery
  268.                   _Pack13Call #DBGetNewQuery
  269.                   ENDM
  270.  
  271.                   MACRO
  272.                   _DBDisposeQuery
  273.                   _Pack13Call #DBDisposeQuery
  274.                   ENDM
  275.  
  276.                   MACRO
  277.                   _DBStartQuery
  278.                   _Pack13Call #DBStartQuery
  279.                   ENDM
  280.  
  281.                   MACRO
  282.                   _DBGetQueryResults
  283.                   _Pack13Call #DBGetQueryResults
  284.                   ENDM
  285.  
  286.                   MACRO
  287.                   _DBResultsToText
  288.                   _Pack13Call #DBResultsToText
  289.                   ENDM
  290.  
  291.                   MACRO
  292.                   _DBInstallResultHandler
  293.                   _Pack13Call #DBInstallResultHandler
  294.                   ENDM
  295.  
  296.                   MACRO
  297.                   _DBRemoveResultHandler
  298.                   _Pack13Call #DBRemoveResultHandler
  299.                   ENDM
  300.  
  301.                   MACRO
  302.                   _DBGetResultHandler
  303.                   _Pack13Call #DBGetResultHandler
  304.                   ENDM
  305.  
  306.     ENDIF    ; ...already included